/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package CTRL;

import View.Vue;
import java.io.IOException;
import java.util.Scanner;

/**
 *
 * @author Karen & Renaud & François
 *
 * 
 *  Controleur principal.
 * 
 * choix entre parie login et non login  ou EXIt
 * 
 * on envoie la vue et connecteur en parametre. la grille est constitue dans les sous controleurs.
 * 
 */
public class Master_CTRL {

    /**
     * @param args the command line arguments
     */
    Scanner lecture;
    Vue vue;
    Protocol connector;  
    String choix;    //  inputreader
    int portJeu=39999;
    String Ip ="localhost";
    
    
        
    public  Master_CTRL () throws IOException {
    
        // ------------ initialisations 
        
        
        lecture=new Scanner(System.in);
        vue = new Vue ();
        connector = new Protocol (portJeu,Ip);

        // ---------------- debut -----------
        vue.msgHello();  //  MSG bienvenue 
        mainChoix ();

    
    }
    
    
    private void mainChoix () throws IOException {
        vue.mainMenu();                 // choix entre connected, local, stats  & exit
        choix=" ";
        while(choix.charAt(0) != '1' && choix.charAt(0) != '2' && choix.charAt(0) != '3' && choix.charAt(0) != 'q'){
           //choix.length() != 1 &&  
            choix=lecture.next();
        }
        
        switch(choix.charAt(0)){
            case '1' : playC();break;         // connected
            case '2' : playL();break;         // local
            case '3' : stats();break;               // stats (global)
            case 'q' : exit();break;                // exit
            default : break;
            
        }
    }
    
    private void playC () throws IOException {
        playLogin partie = new playLogin (vue, connector);
        partie.begin();
        mainChoix ();
    }
    private void playL () throws IOException {
        playNoLogin partie = new playNoLogin (vue, connector);
        partie.begin();
        mainChoix ();
    }

    public static void main(String[] args) throws IOException, ClassNotFoundException {
        
        Master_CTRL newGame = new Master_CTRL();
        
        } //END MAIN

  //--------------------------------------------
    
    private void exit() {
       vue.finDeJeu();
      //  pas de fermeture de socket car il s'ouvre et se ferme dans protocol            
    }

    private void stats() throws IOException {
        String[] stat;

         // stats pour config 1
         stat= connector.getStats(1);
         vue.printStats(stat, 1);
         
                  // stats pour config 2
         stat= connector.getStats(2);
         vue.printStats(stat, 2);
         
                  // stats pour config 3
         stat= connector.getStats(3);
         vue.printStats(stat, 3);
         
         mainChoix ();
    }

 
    } 
